This invention is directed towards mass data storage systems for computers, and more particularly towards manipulation of storage system functional parameters.
Mass data storage systems have become prevalent in information systems due to the need for flexibility, high availability, and extremely large storage capacities. Such mass data storage systems typically include a plurality of disks arranged in a RAID (Redundant Array of Independent Disks) or other configuration, and a memory cache to increase data reading and writing speed.
Such data storage systems also typically provide sophisticated storage management, wherein features such as optimal cache management, data protection and backup procedures are automatically handled by the mass storage system. Such features enable system users and administrators to utilize the mass storage systems with minimal concern about day-to-day optimization details.
Although known mass data storage systems provide sophisticated storage management, some customers and users have a need to control some of the storage system behavior to ensure the quality of service (QOS). For example, it would be beneficial to identify certain volumes (logical, virtual, or physical disks) as having lower priority than others, or to modify levels of protection on individual volumes. These behaviors are typically established by stored system parameters which are loaded when the system is booted. System wide parameters, sometimes called Algorithm Parameters, provide control of some of the caching services (and some other internal algorithm services) such as least recently used (LRU) placement for returned data, second chance decisions (retries), statistical LRU updates, etc.
In known data storage systems, these controls are done at configuration time and are not changeable during normal operation. To change the service behavior, the system must be restarted to have the new parameters take effect. However, shutting down and restarting a high availability data storage system is a complex task. The system must be taken off-line, thereby making the stored data unavailable to the host computers, resulting in an interruption in service. In mission-critical applications, even a short interruption in service may cause serious problems, including lost business and financial opportunities. After the mass storage system is offline, the cached data must all be written out to the disks, and the system prepared to halt and restart. Once restarted, the system may take several minutes to properly configure (based on the changed parameters) and return to full availability.
Therefore, changing the system behavior in known data storage systems is a difficult and time consuming process. Further, it is difficult to attempt to xe2x80x9ctweakxe2x80x9d or tune system performance through incremental changes while observing the performance improvements after each incremental change. Generally, users are not able to make changes to the system behavior while the system is running.
The present invention provides a system and method for dynamically modifying parameters in a data storage system. Such parameters include QOS (Quality of Service) parameters, which control the speed and functionality in which system operations are performed for various parts of a data storage system.
According to the invention, a user interface is provided for the data storage system to allow control over certain provided services on a logical volume basis. These services generally fall into three major categories: data replication/recreation through a xe2x80x9ccopyxe2x80x9d mechanism, performance management through control of caching services, and data integrity checks.
The data replication/recreation function can be broken down into 4 sub-categories: Business Continuance Volumes (BCVs), Remote Data Facility (RDF), Secondary Storage Backup, and Service/Rebuild. Each category has its own level of service that can be controlled with the API. In one embodiment, the level of service is set in terms of a level from 0 to 10 with 0 being the best level of service (also the default level of service) and 10 being the lowest level of service.
In an illustrative embodiment, the performance management function is performed by a user through a Graphic User Interface (GUI) coupled to the data storage system that allows performance values to be selectable, for example, from an increasing or decreasing range of values (i.e. 0-10 or 0-100). The GUI translates these values into an appropriate form, such as bitmasks, to select/deselect various mass storage system services, and sends the bitmasks through an application program interface (API) to the data storage system.
The data integrity check category includes physical drive scrubbing services. These services detract from system performance, but minimize the risk of head crashes.
These quality of service functions are controlled through the user interface. Once set, these functions remain set and preserved across system resets/power downs until specifically changed. The user interface can be used to change these functions while the data storage system is running.
Advantages of the present invention include the ability of users to define different performance requirements for different logical volumes in a data storage system. Logical volumes which are rarely accessed, or of minimal importance can have their QOS (Quality of Service) decreased, thereby freeing up other system resources, including the cache footprint, CPU time, cycles, and hardware resources such as bus and memory usage. This typically results in a corresponding increase in the QOS of important logical volumes.
Other advantages of the present invention include the ability to make changes dynamically to the data storage system while it is in use. The changes made to the QOS of various system parameters take effect quickly enough to be almost transparent to the system administrator, and to end users. This allows system administrators to observe performance changes in real time, and thereby optimize the system through immediate feedback.
Other advantages include a fail-safe and fault tolerant method for adjusting parameters of a data storage system. The adjusted parameters are permanently stored so that the system is stable between power-downs and during power interrupts. The adjusted parameters are maintained until they are altered by a system administrator. The user interface provides users and system administrators with an intuitive Graphic User Interface (GUI) for monitoring and changing data storage system parameters and QOS settings. Users can easily manipulate the system settings using the GUI, including a with features such as bar graphs and scales showing real-time system settings and performance.